home *** CD-ROM | disk | FTP | other *** search
- Path: hamlet.uncg.edu!b_lee2
- From: "Bin . Lee" <b_lee2@hamlet.uncg.edu>
- Newsgroups: comp.os.msdos.programmer,comp.lang.asm.x86,comp.lang.c
- Subject: Urg,ent, keyboard buffer overflow
- Date: Sun, 25 Feb 1996 10:58:55 -0500
- Organization: The University of North Carolina at Greensboro
- Message-ID: <Pine.SOL.3.91.960225103721.16366A-100000@hamlet.uncg.edu>
- NNTP-Posting-Host: hamlet.uncg.edu
- Mime-Version: 1.0
- Content-Type: TEXT/PLAIN; charset=US-ASCII
-
-
- Hi, folks:
-
- I wrote a DOS program in Borland C++, because my interrupt service routine
- block OS for 3 millisecond of every 5 millisecond, I think this cause
- bios no time to serve and check keyboard buffer, which cause keybord buffer
- overflow.
-
- Two questions:
- 1. related to process of bios handler keyboard buffer, when IRQ1 generate
- a interrupt, but has not finished its ISR, can other IRQ, such as IRQ7
- generate a interrupt in between ? How can keyboard buffer overflow happen ?
-
- 2. cli and sti will disable and enable all IRQ, is there a instruction which
- will only disable and enable one specific IRQ, like IRQ7.
-
- structure of my program
-
- int main(void)
- {
- InstallExternalTimingIRQ7ISR()
-
- while( waitkey() )
- {
- doKeyboardInput_ScrOutout();
- }
-
- ReinstallOldIRQ7ISR();
- }
- My interrupt happens every 5 ms and program need 3 ms to finish its ISR,
- during this time, I use cli and sti to protect its service, how will this
- affect keyboard interrupt ? The interrupt I used is external circuit
- generate 5 ms interrupt connect to IRQ7.
-
- Thanks folks, this is urgent for me, please send me a mail.
-
-
- Bin
-